package ideal4j.icity.common.enumtype;

/**
 * @Description 状态码枚举类
 * @author zhangbo
 * @date 2018年9月18日 上午10:12:12
 */
public enum CodeEnumType {
    /**
     * 0:操作成功
     */
    SUCCESS(0,"操作成功"),
    /**
     * 1:缺少参数
     */
    MISSING_PARAM(1,"缺少参数"),
    /**
     * 2:未知错误
     */
    UNKNOWN_ERROR(2,"未知错误"),
    /**
     * 3:非法参数
     */
    INVALID_PARAM(3,"非法参数"),
    /**
     * 4:数据库错误
     */
    DB_ERROR(4,"数据库错误"),
    /**
     * 5:字段重复
     */
    FIELD_REPETITION(5,"字段重复"),
    /**
     * 6:授权失败
     */
    AUTHORIZE_FAILURE(6,"授权失败"),
    /**
     * 7:接口不存在
     */
    INTERFACE_NON_EXISTENT(7,"接口不存在"),
    /**
     * 8:权限不足
     */
    AUTHORITY_DEFICIENCY(8,"权限不足"),
    /**
     * 9:操作失败
     */
    FAILURE(9,"操作失败"),
    /**
     * 10:数据已绑定，如需操作请先解除绑定
     */
    DATA_BINDING(10,"数据已绑定，如需操作请先解除绑定"),
    /**
     * 11:文件类型错误
     */
    FILE_TYPE_ERR(11,"文件类型错误"),
    /**
     * 12:重复操作
     */
    REPEAT_ACTION(12,"重复操作"),
    /**
     * 111:ip已被禁用
     */
    IP_BANNED(111,"ip已被禁用"),
    /**
     * 112:ip访问频繁
     */
    IP_FREQUENT_ACCESS(112,"ip访问频繁"),
    /**
     * 987:未获取到组织ID V2.6 新增统一枚举
     */
    BELONG_DEPT_ID_INVALID(987,"未获取到组织ID"),
    /**
     * 988:token无效
     */
    TOKEN_INVALID(988,"token无效"),
    /**
     * 999:token过期
     */
    TOKEN_OVERDUE(999,"token过期");

    public int code;
    public String value;

    /**
     * @param code 编码
     * @param value 值
     */
    CodeEnumType(int code, String value) {
        this.code = code;
        this.value = value;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    /**
     * 根据code值获取value描述
     */
    public static String getValue(int code) {
        CodeEnumType[] CodeType = values();
        for (CodeEnumType codeEnum : CodeType) {
            if (codeEnum.getCode() == code ) {
                return codeEnum.getValue();
            }
        }
        return "";
    }
}
